-
-
Notifications
You must be signed in to change notification settings - Fork 853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix off-by-one error when centering a transform. #2760
Conversation
Matrix3x2 matrix = Matrix3x2.CreateTranslation(-sourceRectangle.Location); | ||
|
||
foreach (Func<Size, Matrix3x2> factory in this.boundsMatrixFactories) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Matrix3x2 matrix = Matrix3x2.CreateTranslation(-sourceRectangle.Location); | |
foreach (Func<Size, Matrix3x2> factory in this.boundsMatrixFactories) | |
Matrix3x2 matrix = Matrix3x2.CreateTranslation(-sourceRectangle.Location); | |
matrix.Translation += new Vector2(1); | |
foreach (Func<Size, Matrix3x2> factory in this.transformMatrixFactories) | |
{ |
I believe this change should prevent the need of having the 2nd collection of Func
s as I think matrix's for sizing should originate at (+1,+1) from the location of the transform matrix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You’ve got me second guessing myself now but I’m not sure that would work. For the most part we want to return the transformed extents based on the explicitly provided information (translate/rotate/scale x, y). It’s only when we perform our own maths to calculate the centre point we go astray. That matrix must be zero based but can then not be used for bounds calculation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for validating, just want to make sure we hadn't missed something more simple, this PR looks fine to me then. 👍
Prerequisites
Description
Fixes #2753
Fixes the off-by-one error introduced when rotating or skewing images.